package com.business.dynamic.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.business.dynamic.entity.Dynamic;
import com.business.dynamic.entity.vo.DynamicVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 动态表:数据层
 *
 * @author chenjiehong
 * @date 2019-11-29 15:15:38
 * @since 1.0
 */
public interface DynamicMapper extends BaseMapper<Dynamic> {

    /**
     * 获取动态的userId
     *
     * @param id
     * @return
     */
    Integer getDynamicUserId(@Param("id") Integer id);


    /**
     * 获取动态的 点赞数量 评论数量 收藏数量
     *
     * @param id
     * @return
     */
    Integer getDynamicQuantity(@Param("id") Integer id, @Param("field") String field);

    /**
     * @param id
     * @return
     */
    DynamicVo queryOneById(@Param("id") Integer id,@Param("userId") Integer userId);

    /**
     * 获取用户和类型
     *
     * @param id
     * @return
     */
    Dynamic getTypeAndUserId(@Param("id") Integer id);

    /**
     * 查询点赞列表
     * @param page
     * @param wrapper
     * @return
     */
    List<DynamicVo> queryPageByUserLike(@Param("page") Page<Dynamic> page, @Param("ew") Wrapper<Dynamic> wrapper,@Param("userId") Integer userId);

    /**
     * 查询收藏列表
     * @param page
     * @param wrapper
     * @return
     */
    List<DynamicVo> queryPageByUserCollection(@Param("page") Page<Dynamic> page, @Param("ew") Wrapper<Dynamic> wrapper,@Param("userId") Integer userId);



    /**
     * 查询列表
     * @param page
     * @param wrapper
     * @return
     */
    List<DynamicVo> queryPage(@Param("page") Page<Dynamic> page, @Param("ew") Wrapper<Dynamic> wrapper,@Param("userId") Integer userId);

    /**
     * 查询推荐列表
     * @param page
     * @param wrapper
     * @return
     */
    List<DynamicVo> queryRecommendPage(@Param("page") Page<Dynamic> page, @Param("ew") Wrapper<Dynamic> wrapper,@Param("userId") Integer userId);


    /**
     * 查询用户发布的动态列表
     * @param page
     * @param wrapper
     * @return
     */
    List<DynamicVo>   queryUserList(@Param("page") Page<Dynamic> page, @Param("ew") Wrapper<Dynamic> wrapper);


}
